//package com.blrs.service.questionnaire.impl;
//
//import java.util.List;
//import java.util.UUID;
//
//import com.blrs.common.core.domain.AjaxResult;
//import com.blrs.common.core.domain.entity.SysDept;
//import com.blrs.common.utils.ReflectionUtils;
//import com.blrs.common.utils.SecurityUtils;
//import com.blrs.common.utils.StringUtils;
//import com.blrs.domain.*;
//import com.blrs.mapper.*;
//import com.blrs.service.questionnaire.IQuestionnaireInvestigationService;
//import com.blrs.system.mapper.SysDeptMapper;
//import com.blrs.system.mapper.SysUploadFileMapper;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
///**
// * 问卷调查Service业务层处理
// *
// * @author yang
// * @date 2023-11-27
// */
//@Service
//public class QuestionnaireInvestigationServiceImpl implements IQuestionnaireInvestigationService
//{
//    @Autowired
//    private QuestionnaireInvestigationMapper questionnaireInvestigationMapper;
//    @Autowired
//    private SysDeptMapper sysDeptMapper;
//    @Autowired
//    private EnterpriseInfoMapper enterpriseInfoMapper;
//    @Autowired
//    private QuestionnaireReceptionMapper questionnaireReceptionMapper;
//    @Autowired
//    private QuestionnaireEnrollMapper questionnaireEnrollMapper;
//    @Autowired
//    private QuestionnaireTitleMapper questionnaireTitleMapper;
//
//
//    /**
//     * 查询问卷调查
//     *
//     * @param questionnaireId 问卷调查主键
//     * @return 问卷调查
//     */
//    @Override
//    public QuestionnaireInvestigation selectQuestionnaireInvestigationByQuestionnaireId(String questionnaireId)
//    {
//        QuestionnaireInvestigation questionnaireInvestigation = questionnaireInvestigationMapper.selectQuestionnaireInvestigationByQuestionnaireId(questionnaireId);
//        return questionnaireInvestigation;
//    }
//
//    /**
//     * 查询问卷调查列表
//     *
//     * @param questionnaireInvestigation 问卷调查
//     * @return 问卷调查
//     */
//    @Override
//    public List<QuestionnaireInvestigation> selectQuestionnaireInvestigationList(QuestionnaireInvestigation questionnaireInvestigation)
//    {
//        questionnaireInvestigation.setBelongTo(sysDeptService.getOrgId());
//        List<QuestionnaireInvestigation> questionnaireInvestigations = questionnaireInvestigationMapper.selectQuestionnaireInvestigationList(questionnaireInvestigation);
//        //遍历查询每条问卷对应的接收企业数量
//        questionnaireInvestigations.forEach(questionnaireInvestigation1 -> {
//            questionnaireInvestigation1.setSendNum(questionnaireReceptionMapper.selectByQuestionnaireIdNum(questionnaireInvestigation1.getQuestionnaireId(),null));
//            questionnaireInvestigation1.setReturnNum(questionnaireReceptionMapper.selectByQuestionnaireIdNum(questionnaireInvestigation1.getQuestionnaireId(),1));
//        });
//        //查询回传问卷的数量
//       return questionnaireInvestigations;
//    }
//
//    /**
//     * 新增问卷调查
//     *
//     * @param questionnaireInvestigation 问卷调查
//     * @return 结果
//     */
//    @Override
//    public int insertQuestionnaireInvestigation(QuestionnaireInvestigation questionnaireInvestigation) throws NoSuchFieldException, IllegalAccessException {
//        questionnaireInvestigation.setQuestionnaireId(UUID.randomUUID().toString().replaceAll("-",""));
//        if (questionnaireInvestigation.getSendType().equals("groupSend")){
//            for (String s : questionnaireInvestigation.getEnterpriseId()) {
//                if (StringUtils.isNotEmpty(s)){
//                    //先查询对应组织机构id
//                    QuestionnaireReception questionnaireReception = new QuestionnaireReception();
//                    //根据企业id查询企业名称
//                    String enterpriseName = enterpriseInfoMapper.selectEnterpriseInfoByEnterpriseId(s).getEnterpriseName();
//                    //根据企业名称查询组织机构id
//                    questionnaireReception.setReceiverId(sysDeptMapper.selectByDeptName(enterpriseName).getDeptId());
//                    questionnaireReception.setEnterpriseId(s);
//                    questionnaireReception.setQuestionnaireId(questionnaireInvestigation.getQuestionnaireId());
//                    questionnaireReception.setQuestionnaireName(questionnaireInvestigation.getQuestionnaireName());
//                    questionnaireReception.setEnterpriseName(enterpriseName);
//                    questionnaireReceptionMapper.insertQuestionnaireReception(questionnaireReception);
//                }
//            }
//        }else {
//            //说明是一键发送
//            //获取所有的入驻企业id
//            List<SysDept> deptList = sysDeptMapper.selectOrgList(null);
//            for (SysDept sysDept : deptList) {
//                QuestionnaireReception questionnaireReception = new QuestionnaireReception();
//                questionnaireReception.setQuestionnaireId(questionnaireInvestigation.getQuestionnaireId());
//                questionnaireReception.setReceiverId(sysDept.getDeptId());
//                questionnaireReception.setEnterpriseName(sysDept.getDeptName());
//                questionnaireReception.setQuestionnaireName(questionnaireInvestigation.getQuestionnaireName());
//                questionnaireReceptionMapper.insertQuestionnaireReception(questionnaireReception);
//            }
//        }
//        ReflectionUtils.setCommonPrivateProperty(questionnaireInvestigation);
//        //状态
//        if ("自定义".equals(questionnaireInvestigation.getQuestionnaireType())){
//            questionnaireInvestigation.setStatus("草稿");
//        }else {
//            questionnaireInvestigation.setStatus("审核");
//        }
//        questionnaireInvestigation.setReceiverId(String.join(",",questionnaireInvestigation.getEnterpriseId()));
//        return questionnaireInvestigationMapper.insertQuestionnaireInvestigation(questionnaireInvestigation);
//    }
//
//    /**
//     * 修改问卷调查
//     *
//     * @param questionnaireInvestigation 问卷调查
//     * @return 结果
//     */
//    @Override
//    public int updateQuestionnaireInvestigation(QuestionnaireInvestigation questionnaireInvestigation)
//    {
//        //判断传入的是一键发送还是分类群发
//        if (questionnaireInvestigation.getSendType().equals("groupSend")){
//            //说明是分类群发,删除旧的接收表数据，添加新的
//            questionnaireReceptionMapper.deleteQuestionnaireReceptionByQuestionnaireId(questionnaireInvestigation.getQuestionnaireId());
//            for (String s : questionnaireInvestigation.getEnterpriseId()) {
//                if (StringUtils.isNotEmpty(s)){
//                    //先查询对应组织机构id
//                    QuestionnaireReception questionnaireReception = new QuestionnaireReception();
//                    //根据企业id查询企业名称
//                    String enterpriseName = enterpriseInfoMapper.selectEnterpriseInfoByEnterpriseId(s).getEnterpriseName();
//                    //根据企业名称查询组织机构id
//                    questionnaireReception.setReceiverId(sysDeptMapper.selectByDeptName(enterpriseName).getDeptId());
//                    questionnaireReception.setEnterpriseId(s);
//                    questionnaireReception.setQuestionnaireId(questionnaireInvestigation.getQuestionnaireId());
//                    questionnaireReception.setQuestionnaireName(questionnaireInvestigation.getQuestionnaireName());
//                    questionnaireReception.setEnterpriseName(enterpriseName);
//                    questionnaireReceptionMapper.insertQuestionnaireReception(questionnaireReception);
//                }
//            }
//        }else {
//                //说明是一键发送
//                //说明修改之前为分类群发
//                questionnaireReceptionMapper.deleteQuestionnaireReceptionByQuestionnaireId(questionnaireInvestigation.getQuestionnaireId());
//                //获取所有的入驻企业id
//                List<SysDept> deptList = sysDeptMapper.selectOrgList(null);
//                for (SysDept sysDept : deptList) {
//                    QuestionnaireReception questionnaireReception = new QuestionnaireReception();
//                    questionnaireReception.setQuestionnaireId(questionnaireInvestigation.getQuestionnaireId());
//                    questionnaireReception.setReceiverId(sysDept.getDeptId());
//                    questionnaireReception.setEnterpriseName(sysDept.getDeptName());
//                    questionnaireReception.setQuestionnaireName(questionnaireInvestigation.getQuestionnaireName());
//                    questionnaireReceptionMapper.insertQuestionnaireReception(questionnaireReception);
//                }
//            }
//        return questionnaireInvestigationMapper.updateQuestionnaireInvestigation(questionnaireInvestigation);
//    }
//
//    /**
//     * 批量删除问卷调查
//     *
//     * @param questionnaireIds 需要删除的问卷调查主键
//     * @return 结果
//     */
//    @Override
//    public int deleteQuestionnaireInvestigationByQuestionnaireIds(String[] questionnaireIds)
//    {
//        return questionnaireInvestigationMapper.deleteQuestionnaireInvestigationByQuestionnaireIds(questionnaireIds);
//    }
//
//    /**
//     * 删除问卷调查信息
//     *
//     * @param questionnaireId 问卷调查主键
//     * @return 结果
//     */
//    @Override
//    public int deleteQuestionnaireInvestigationByQuestionnaireId(String questionnaireId)
//    {
//        return questionnaireInvestigationMapper.deleteQuestionnaireInvestigationByQuestionnaireId(questionnaireId);
//    }
//
//    @Override
//    public List<QuestionnaireInvestigation> selectQuestionnaireInvestigationListHis(QuestionnaireInvestigation questionnaireInvestigation) {
//        questionnaireInvestigation.setBelongTo(sysDeptService.getOrgId());
//        return questionnaireInvestigationMapper.selectQuestionnaireInvestigationListHis(questionnaireInvestigation);
//    }
//
//    @Override
//    public AjaxResult examineById(String id) {
//        return AjaxResult.success( questionnaireInvestigationMapper.updateQuestionnaireInvestigationByStatus(id));
//    }
//
//    @Override
//    public List<QuestionnaireInvestigation> selectQuestionnaireInvestigationListReception(QuestionnaireInvestigation questionnaireInvestigation) {
//        //查询当前用户接收的问卷列表
//        //接收方，需要通过接收id来查询当前用户能访问的数据列表
//        questionnaireInvestigation.setReceiverId(String.valueOf(sysDeptService.getOrgId()));
//        List<QuestionnaireInvestigation> questionnaireInvestigations = questionnaireInvestigationMapper.selectByReception(questionnaireInvestigation);
//        //查询作答人
//        for (QuestionnaireInvestigation investigation : questionnaireInvestigations) {
//               if (investigation.getIsAnswer()>0){
//                 //查询作答表
//                   QuestionnaireEnroll questionnaireEnroll =questionnaireEnrollMapper.selectEnrollByQuestionnaireId(investigation.getQuestionnaireId(),sysDeptService.getOrgId());
//                   investigation.setAnswerUser(questionnaireEnroll.getPersonnelName());
//               }
//        }
//        return questionnaireInvestigations;
//    }
//
//    @Override
//    public AjaxResult updateQuestionnaireInvestigationByStatus(String id) {
//        //先判断是否有添加对应的题目
//        if (questionnaireTitleMapper.selectNumTitleByQuestionnaireId(id)<=0){
//            return AjaxResult.error("请先填入对应的题目以及答案");
//        }
//        int i=questionnaireInvestigationMapper.updateQuestionnaireInvestigationByStatusByReview(id);
//        if (i>0){
//            return AjaxResult.success("提交成功");
//        }else {
//            return AjaxResult.error("提交失败");
//        }
//    }
//}